package com.kyrie.lib_sys.application.categoryApplys.service;

import com.kyrie.lib_sys.common.entity.PageResult;
import com.kyrie.lib_sys.common.pojo.dto.CategoryDTO;
import com.kyrie.lib_sys.common.pojo.dto.CategoryPageQueryDTO;
import com.kyrie.lib_sys.common.pojo.entity.Category;

import java.util.List;

public interface CategoryService {
    /**
     * 添加分类
     *
     * @param categoryDTO
     */
    void insert(CategoryDTO categoryDTO);

    /**
     * 查询分类
     *
     * @param categoryDTO
     * @return
     */
    Category queryCategory(CategoryDTO categoryDTO);

    /**
     * 根据ID查询分类
     *
     * @param id
     * @return
     */
    CategoryDTO queryCategoryById(Long id);

    /**
     * 查询分类列表分类
     *
     * @param categoryPageQueryDTO
     */

    PageResult queryList(CategoryPageQueryDTO categoryPageQueryDTO);

    /**
     * 分页查询分类
     *
     * @param categoryPageQueryDTO
     * @return
     */
    PageResult queryPage(CategoryPageQueryDTO categoryPageQueryDTO);

    /**
     * 条件查询分类
     *
     * @param categoryDTO
     * @return
     */
    CategoryDTO queryByCondition(CategoryDTO categoryDTO);

    /**
     * 修改分类
     *
     * @param categoryDTO
     */
    void update(CategoryDTO categoryDTO);

    /**
     * 删除分类
     *
     * @param id
     */
    void deleteById(Long id);

    /**
     * 批量删除分类
     *
     * @param ids
     */

    void deleteBatch(List<Long> ids);

    /**
     * 批量插入分类
     *
     * @param categoryDTOS
     */

    void insertBatch(List<CategoryDTO> categoryDTOS);
}
